import { Client } from "mysql";
// 使用你 deno.json 中 $std/ 的版本
import { load } from "$std/dotenv/mod.ts"; // 通常是 $std/dotenv/mod.ts 或 $std/dotenv/load.ts

// 尝试加载 .env 文件中的环境变量，如果失败则不报错
try {
  await load({ export: true });
} catch (e) {
  console.log("未找到.env文件或无法加载，将使用默认配置");
}

const dbConfig = {
  hostname: Deno.env.get("DB_HOST") || "localhost",
  username: Deno.env.get("DB_USER") || "root",
  password: Deno.env.get("DB_PASSWORD") || "1234",
  db: Deno.env.get("DB_NAME") || "fresh_micro_blog_db",
  port: parseInt(Deno.env.get("DB_PORT") || "3306", 10),
};

// 获取数据库客户端
export async function getDbClient(): Promise<Client> {
  console.log("获取数据库连接...");
  console.log(`数据库连接信息: ${dbConfig.hostname}:${dbConfig.port}, 数据库: ${dbConfig.db}`);
  
  try {
    const client = await new Client().connect(dbConfig);
    console.log("数据库连接成功");
    return client;
  } catch (error) {
    console.error("数据库连接失败:", error);
    throw error;
  }
}

export interface Post {
  id: number;
  title: string;
  content: string;
  created_at: Date; // 或者 string，取决于你希望如何处理日期
}